<html>
 <head>
  <meta charset="UTF-8">
 </head>
 <body>
  <p data-lake-id="u2ca1b174" id="u2ca1b174"><span data-lake-id="u48a7e58f" id="u48a7e58f">Dump是Java虚拟机的</span><strong><span data-lake-id="u86dd7f14" id="u86dd7f14">运行时快照</span></strong><span data-lake-id="uba6dc81f" id="uba6dc81f">。将Java虚拟机运行时的状态和信息保存到文件。</span></p>
  <p data-lake-id="u56c3081f" id="u56c3081f"><span data-lake-id="u900d204a" id="u900d204a">​</span><br></p>
  <p data-lake-id="ud720193a" id="ud720193a"><strong><span data-lake-id="uea7d937f" id="uea7d937f">线程Dump</span></strong><span data-lake-id="u890746d2" id="u890746d2">，包含所有线程的运行状态。纯文本格式。</span></p>
  <p data-lake-id="u65337a20" id="u65337a20"><span data-lake-id="uc6df9908" id="uc6df9908">​</span><br></p>
  <p data-lake-id="uf04eb037" id="uf04eb037"><strong><span data-lake-id="u72924db5" id="u72924db5">堆Dump</span></strong><span data-lake-id="uef1e3cc1" id="uef1e3cc1">，包含线程Dump,幵包含所有堆对象的状态。二进制格式。</span></p>
  <p data-lake-id="ueec55bb1" id="ueec55bb1"><span data-lake-id="u60eddaff" id="u60eddaff">​</span><br></p>
  <h4 data-lake-id="KyNJH" id="KyNJH"><span data-lake-id="ue8549114" id="ue8549114">Java Dump有什么用？</span></h4>
  <p data-lake-id="u0f9b03b0" id="u0f9b03b0"><br></p>
  <p data-lake-id="ufc4b5609" id="ufc4b5609"><span data-lake-id="uc0cfcdea" id="uc0cfcdea">补足传统Bug分析手段的不足: 可在任何Java环境使用;信息量充足。 针对非功能正确性的Bug,主要为:多线程幵发、内存泄漏。</span></p>
  <p data-lake-id="u3eae1bb6" id="u3eae1bb6"><span data-lake-id="ua5faaaac" id="ua5faaaac">​</span><br></p>
  <h1 data-lake-id="PbALK" id="PbALK"><span data-lake-id="udd01f2e6" id="udd01f2e6">扩展知识</span></h1>
  <h3 data-lake-id="FdnUn" id="FdnUn"><span data-lake-id="u293f220a" id="u293f220a">如何制作Java Dump</span></h3>
  <h4 data-lake-id="gxf8E" id="gxf8E"><span data-lake-id="ua43ae6e8" id="ua43ae6e8">使用Java虚拟机制作Dump</span></h4>
  <p data-lake-id="ud6e1ae3c" id="ud6e1ae3c"><span data-lake-id="u8b225359" id="u8b225359">​</span><br></p>
  <p data-lake-id="ueb3028b1" id="ueb3028b1"><span data-lake-id="u065ec813" id="u065ec813">指示虚拟机在发生内存不足错误时,自动生成堆Dump</span></p>
  <p data-lake-id="u705bcd15" id="u705bcd15"><span data-lake-id="u03d64b5b" id="u03d64b5b">​</span><br></p>
  <pre lang="java"><code>
-XX:+HeapDumpOnOutOfMemoryError
</code></pre>
  <p data-lake-id="ue15a174f" id="ue15a174f"><span data-lake-id="u16bb06b0" id="u16bb06b0">​</span><br></p>
  <h4 data-lake-id="eG8zR" id="eG8zR"><span data-lake-id="uc43be6e4" id="uc43be6e4">使用图形化工具制作Dump</span></h4>
  <p data-lake-id="ued4b7ebc" id="ued4b7ebc"><span data-lake-id="u92eab2af" id="u92eab2af">使用JDK(1.6)自带的工具:Java VisualVM。</span></p>
  <h4 data-lake-id="jMDR9" id="jMDR9"><span data-lake-id="uf1b96f4c" id="uf1b96f4c">使用命令行制作Dump</span></h4>
  <p data-lake-id="ue2eaa439" id="ue2eaa439"><span data-lake-id="u71975551" id="u71975551">jstack</span><span data-lake-id="u59afa2a2" id="u59afa2a2">:打印线程的栈信息,制作线程Dump。</span></p>
  <p data-lake-id="ue522e8df" id="ue522e8df"><span data-lake-id="u6f4a31e7" id="u6f4a31e7">jmap</span><span data-lake-id="uaf196c00" id="uaf196c00">:打印内存映射,制作堆Dump。</span></p>
  <p data-lake-id="u9d76e546" id="u9d76e546"><br></p>
 </body>
</html>